import 'package:intl/intl.dart';

/// int 数字扩展
extension IntEx on int {
  /// 月份或日期，不足2位数，前面自动补01
  String get toMonthOrDayString => this >= 10 ? toString() : '0$this';
}

extension NumEx on num {
  /// 对数据进行格式化
  ///
  /// 各符号规则：
  /// - '0' : 一个数字
  /// - '#' : 一个数字，不包括 0
  /// - '.' : 小数分隔符的占位符
  /// - ',' : 分组分隔符的占位符,常用与金额的千分位
  /// - ';' : 分隔格式
  /// - '-' : 缺省负数前缀
  /// - '%' : 乘以 100 和作为百分比显示
  /// - '‰ (\u2030)' : 乘以 1000 和作为千分比显示
  ///
  /// 常用格式化规格：
  /// - '#0' : 仅保留整数部分
  /// - '#0.0' : 保留一位小数，不足则以0补充
  /// - '#0.00' : 保留两位小数，不足则以0补充
  /// - '#0.#' : 保留一位小数，如果尾数是0则去掉
  /// - '#0.##' : 保留两位小数，如果尾数是0则去掉
  /// - '#0.0#' : 至少保留一位小数，第二位小数如果是0则去掉
  /// - '￥#,###' : 金额千分位分组
  String format(String format) {
    return NumberFormat(format).format(this);
  }
}
